package com.pxst.tr.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;

/**
 * Transfer_内转订单(tr100)
 * TableName sys_introversion_order
 */
@Data
@TableName(value = "sys_introversion_order")
public class SysIntroversionOrderEntity implements Serializable {
    /**
     * 内转ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 参考编号
     */
    @TableField(value = "reference")
    private String reference;

    /**
     * 银行卡ID (from)
     */
    @TableField(value = "from_bank_card_id")
    private Long fromBankCardId;

    /**
     * 银行卡ID (to)
     */
    @TableField(value = "to_bank_card_id")
    private Long toBankCardId;

    /**
     * 用户发起金额
     */
    @TableField(value = "request_amount")
    private BigDecimal requestAmount;

    /**
     * 实际作用金额
     */
    @TableField(value = "paid_amount")
    private BigDecimal paidAmount;

    /**
     * 系统手续费
     */
    @TableField(value = "rate")
    private BigDecimal rate;

    /**
     * 银行手续费
     */
    @TableField(value = "bank_fee")
    private BigDecimal bankFee;

    /**
     * 余额 (from)
     */
    @TableField(value = "balance_from")
    private BigDecimal balanceFrom;

    /**
     * 交易前余额 (from)
     */
    @TableField(value = "pre_balance_from")
    private BigDecimal preBalanceFrom;

    /**
     * 讯银余额 (from)
     */
    @TableField(value = "balance_from_xy")
    private BigDecimal balanceFromXy;

    /**
     * 讯银交易前余额 (from)
     */
    @TableField(value = "pre_balance_from_xy")
    private BigDecimal preBalanceFromXy;

    /**
     * 余额 (to)
     */
    @TableField(value = "balance_to")
    private BigDecimal balanceTo;

    /**
     * 交易前余额 (to)
     */
    @TableField(value = "pre_balance_to")
    private BigDecimal preBalanceTo;

    /**
     * 讯银余额 (to)
     */
    @TableField(value = "balance_to_xy")
    private BigDecimal balanceToXy;

    /**
     * 讯银交易前余额 (to)
     */
    @TableField(value = "pre_balance_to_xy")
    private BigDecimal preBalanceToXy;

    /**
     * 订单完成时间
     */
    @TableField(value = "completed_at")
    private Date completedAt;

    /**
     * 币别
     */
    @TableField(value = "currency")
    private String currency;

    /**
     * 讯银步骤
     */
    @TableField(value = "step")
    private String step;

    /**
     * 迅银回传当前状态（文字）
     */
    @TableField(value = "message")
    private String message;

    /**
     * "手动操作状态
     * 成功 Uploaded
     * 失败 Unknown Error After Otp
     * BS200"
     */
    @TableField(value = "action")
    private Integer action;

    /**
     * 备注
     */
    @TableField(value = "note")
    private String note;

    /**
     * U盾token input
     */
    @TableField(value = "token_input")
    private String tokenInput;

    /**
     * 我们的单号
     */
    @TableField(value = "command_id")
    private String commandId;

    /**
     * 出款虚拟账单ID
     */
    @TableField(value = "from_vs_id")
    private Long fromVsId;

    /**
     * 收款虚拟账单ID
     */
    @TableField(value = "to_vs_id")
    private Long toVsId;

    /**
     * 执行次数
     */
    @TableField(value = "retry_times")
    private Integer retryTimes;

    /**
     * "讯银回传状态
     * 1.Pending–等待机器人跑
     * 2.Processing–机器人正在跑
     * 3.Completed–成功交易
     * 4.Manual process–失败后的手动操作
     * 人工可操作成成功或失败（如果交易试成功的）
     * 5.Failed–失败, 不可更改状态
     * BS200"
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * "type 转移类型
     * 1 FI to FO
     * 2 FI to FX
     * 3 FI to TR
     * 4 TR to FO
     * 5 TR to FX""
     * BS200"
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 创建人员
     */
    @TableField(value = "creator")
    private String creator;

    /**
     * 更新人员
     */
    @TableField(value = "updater")
    private String updater;

    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    private Date createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at")
    private Date updatedAt;

    /**
     * 当地创建时间
     */
    @TableField(value = "local_created_at")
    private Date localCreatedAt;

    /**
     * 当地更新时间
     */
    @TableField(value = "local_updated_at")
    private Date localUpdatedAt;

    /**
     * OTP发起时间
     */
    @TableField(value = "receivedOTPtime")
    private Date receivedotptime;

    /**
     * OTP倒数时间
     */
    @TableField(value = "otptimer")
    private Integer otptimer;

    /**
     * OPT验证码
     */
    @TableField(value = "ref_code")
    private String refCode;

    /**
     * 银行流水单号
     */
    @TableField(value = "bankreferenceno")
    private String bankreferenceno;

    /**
     * 状态0：未送出过1：已送出过
     */
    @TableField(value = "is_ref_code")
    private String isRefCode;

    /**
     * 是否手动添加  1.是
     */
    @TableField(value = "is_entry")
    private Integer isEntry;

    /**
     * VND OTP
     */
    @TableField(value = "vnd_otp")
    private String vndOtp;

    /**
     * VND 出款方式
     */
    @TableField(value = "vnd_payment_method")
    private String vndPaymentMethod;

    /**
     * 后记
     */
    @TableField(value = "postscript")
    private String postscript;

    /**
     * 服务器ID
     */
    @TableField(value = "server_id")
    private Long serverId;

    /**
     * TR 自动转帐
     */
    @TableField(value = "tr_auto")
    private Integer trAuto;

    /**
     * VPN Id
     */
    @TableField(value = "alt_vpn_id")
    private Long altVpnId;

    /**
     * 重新整理点击次数
     */
    @TableField(value = "runmon_number")
    private Integer runmonNumber;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}